查看原文
其他

StatQuest生物统计学专题 - p值

冰糖 生信菜鸟团 2022-06-07

单尾检验可以降低p值,so cool??Oh NO!p值0.051…显著性阈值0.05?

今天来聊聊p值,这个让人又爱又恨的p值早已是科研文献中的明星数值,任何依赖于数据进行推断的结论,只要不带上p值,肯定会被人diss到阵亡。然而看着辛苦做出的数据p值是0.051、0.10…,这次第,又怎一愁字了得。

为了让自己的科研心血能走上正位,总有“操作”可以做的嘛:双尾不行来个单尾试试、非参检验不OK强上t检验、补一两个重复再看看显著性也是可以的啊。

然而,我们不禁要问,这样真的OK吗?

接下来就聊聊p值:

单尾检验可以降低p值,so cool??

场景一:

假定你正在进行一项癌症治疗的临床,并期望使用你的新疗法可以提高治疗癌症的效果,然后共有6例病人,结果如下,除了中间的两例,新疗法和对照疗法是有较大的区分的。

检验此时的p值,单尾检验0.03,是显著的,然而双尾检验却是0.06,怎么办,辛辛苦苦做来的实验数据,不就是为了获得显著性?是否应该直接选用单尾检验?

statquest-II-1

先看一下此例子中单尾检验和双尾检验的含义,单尾检验是用于检验新疗法是不是好于对照疗法,而双尾检验是用于检验新疗法是“好于”、“坏于”还是“无统计学差异于”对照疗法。单尾检验显著性之所以高,是因为它不区分“坏于”和“无统计学差异”的情况。

由于我们就是为了检验新疗法和对照疗法的疗效差异的,我们并不能断定新疗法一定不会差于对照疗法,所以应该使用双尾检验,不能使用单位检验。

但是还有一个新的问题,从图中的数据可以看出,大多数新疗法的数据都要好于对照疗法,难道不能据此认定应该使用单尾检验吗?

这里必须指出一个良好的统计学实践规范:在开始一项实验之前,应该确定好使用的检验方法及检验水平。否则就是在进行p值篡改,在增加毫无意义的假阳性结果。

为什么会这样?

仍以正态分布的抽样为例,每次抽取两个样本,每个样本数量为3,对两个样本进行双尾t检验,大多数情况下都是下图中1的情况,得出不显著的p值,然而仍然有少数情况下得出下图中2的情况,也就是p值显著(假阳性,两个样本来自于同一总体,理应是不显著)。由于显著性是0.05,假阳性事件是可能发生的,理论上有5%的发生可能性。

statquest-II-2

假如我们做10,000次这种抽样并进行双尾t检验的模拟,就可以得到10,000个p值,由于显著性阈值设定为0.05,10,000*0.05=500,那么理论上会有500次的抽样显著性为显著(假阳性)。将这10,000个p值按照p值大小和相应数抽样次数进行画图,可以得到下图。可以看到,模拟实验也显示约有500例的假阳性。

statquest-II-3

接着,我们继续进行单尾t检验的情况,仍然抽样10,000次,但是假如样本1中有两个及以上数值低于样本2,则使用单尾检验(模拟场景一的情形)。将其按照p值大小和数量进行画图,得到下图。可以发现此时的假阳性提高了,约有800例左右。尽管此时使用同样的显著性阈值0.05,但是假阳性却从5%升高至8%。

statquest-II-4

最后,重新回到“场景一”,很明显我们是为了获知新疗法究竟是“好于”还是“差于”对照疗法,所以双尾检验才是更恰当的方案。在绝大部分情况下,我们需要双尾而不是单尾的检验。

Oh NO!p值0.051…

场景二:

假如明天就是组会,而老板像催命一样向你要一个数据:

  • 你做实验奋战到深夜;

  • 终于得到一批实验数据;

  • 然后赶紧去做了一个统计学分析;

  • 结果p值是….0.051… Oh NO!

你还有时间追加一个重复,你会怎么做?

回答这个问题之前,同样的先做一个模拟实验看看,在刚才“单尾检验可以降低p值,so cool??”部分已经做过类似的模拟。

随机从正态总体中抽样两个样本,每个样本数量为3,抽样1,000次,并对每次抽样做双尾t检验。同样的将p值数据做一个频数直方图。如下图,p值小于0.05的假阳性样本53次(蓝色条),大于0.05小于0.1的样本48次(红色条)。这些数据没有问题,接近理论值50次。

进一步的,假如随机抽取一个同一正态总体的数据,并将其补充到48次“红色条”数据中(也就是令其样本数量加1,模拟场景二),那么此时可以发现30%的“红色条”数据变为显著。只是使用毫无意义的随机数据就可以将“近似显著数据”的30%纳入到假阳性中。

所以,不要直接补加数据重复直到显著,这样只会增加假阳性几率。

But,我估计肯定会有人去拼这30%的概率去调‘近似显著’的显著性。

statquest-II-5

那么应该怎么做?

  • 在每一次实验前,应该使用“功效分析”估计样本数量;

  • 如果从来没有做过“功效分析”,可以使用当前数据做一下“功效分析”。

什么是“功效分析”?

功效是不犯第II类统计错误的概率,是不犯“假阴性”的概率。为了获得一个正确的显著性p值,所需要的样本数量计算就是功效分析的一种。

一个统计推断,犯“假阳性”的概率就是α值,一般为0.05;犯“假阴性”的概率同多个因素相关(数据效应、数据波动、样本量及统计推断方法),“假阴性”概率用β值表示,一般控制β在0.1。

功效值就是1-β,其值相应的为0.9。

statquest-II-7

同样的样本大小情况下,功效同数据效应大小及数据波动有关

以正态分布为例,见下图:

  • 数据效应(均值差)越大则抽样数据越容易区分两个正态分布,也就是越不容易有“假阴性”,也就越有较大的功效;

  • 数据波动(标准差)越小,则抽样数据越容易区分两个正态分布,也越有较大的功效。

statquest-II-6

那么功效同样本量有什么关系呢?

假定从一个正态中体中抽样1000次,每次抽样取均值,将这1000个均值绘制直方图,见下图,随着样本数量的提高,样本均值越容易在中间(其实就是总体均值)聚集。也就是说样本数量越大,样本越容易代表总体,越容易代表总体,自然也就越容易区分两个总体的不同,功效就越大。

statquest-II-8

此外,一些统计推断方法也会影响功效值,一般情况下,符号秩检验、秩和检验等非参数检验的功效比t检验、方差分析等有参数检验的功效值要低,在满足t检验、方差分析等有参数检验的使用条件的情况下,应该尽量使用有参检验。

怎么进行“功效分析”?

首先需要一些预实验数据或对实验结果的预想值,他们来自于:

  • 以前的实验数据;

  • 文献数据;

  • 对实验结果的合理预想值;

然后功效分析要求知道下图三者其二,然后可以求第三个变量(α值0.05, 1-β=0.9)。

一般根据以前的实验数据或文献数据,可以得到效应大小(均值差)及数据波动(标准差)的预估值,根据功效分析就可以求得相应的样本数量。

statquest-II-9

具体的功效分析实施:

  • 网站:http://powerandsamplesize.com/(已测试,打不开)

  • Mac/Windows:Gpowre、PASS

  • R:pwr

显著性阈值0.05?

一般情况下,显著性阈值定为0.05都没有问题,这也是文献中最常用的阈值,但是有时候也需要对显著性阈值进行调整。

如果你只是在探索数据,那么并不需要一定将阈值设定在0.05,你也可以设定稍微较高的阈值,只要后期得到验证即可,以免在初期实验条件不是最优的情况下,错失重要发现。如果你的数据几乎没有相关联的可能,那么此时无论多小的显著性都是没有意义的,就像一个国家居民感冒的次数同股市的涨跌之间的关系一样,我们几乎不认为这两者之间有什么关联,即便真的获得了足够小的p值,也没有什么意义。如果对于非同寻常的数据,诸如一些令人难以置信的结果,那么往往也需要极其小的p值才能最终确定。

参考资料

StatQuest课程:https://statquest.org/video-index/


猜你喜欢

生信基础知识100讲

生信菜鸟团-专题学习目录(5)

生信菜鸟团-专题学习目录(6)

还有更多文章,请移步公众号阅读

▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。



      

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存